Generally described, communication networks facilitate the transmission of data between a number of computing devices. In one typical application, computing devices can utilize global communication networks, such as the Internet, to request and transmit a variety of data. In one embodiment, computing devices can utilize a global communication network, such as the World Wide Web, to request and transmit electronic data that can be displayed on the computing device as a combination of graphical and textual data, often referred to as a Web page. In another embodiment, computing devices can utilize a communication network to direct graphics and text to a specific user identified by a logical address within the global network. This is often referred to as electronic mail, or e-mail.
In both the above-examples, to transmit data over the global communication networks, the various computing devices utilize standard communication languages and encoding protocols. With reference to the World Wide Web, computing devices can communicate by utilizing software applications, referred to as browser software applications, that obtain standard encoded electronic data and generate corresponding graphical and textual images on the computing device display. More specifically, the electronic data can be encoded and transmitted in a markup language, such as the Hypertext Markup Language (“HTML”) or the extensible markup language (“XML”), that instructs the browser software application how to generate, or otherwise obtain, the specified graphics and/or text to be displayed. Thus, the particular order in which the HTML or XML data is encoded can effect the manner in which a corresponding computer display is rendered by the browser software application.
FIG. 1 is a block diagram of a screen display 100 generated by a computing device from HTML data in accordance with the present invention. As illustrated in FIG. 1, the screen display includes a top banner section 102, another banner section 104, three middle sections 106, 108, 110, and a bottom banner section 112. Accordingly, the HTML data would include HTML code that would define the various properties and content of each section. Additionally, in accordance with standard encoding practice, the HTML code for section 102 would appear first, followed by the HTML code for section 104, followed by the HTML code for sections 106, 108, and 110, and lastly, the HTML data would include HTML code for section 112. The location of individual pieces of HTML code dictates the location in which it is rendered to a display screen by the browser software application. Accordingly, if the layout of FIG. 1 is a template for a display, any HTML following the template would have to follow the corresponding order of encoding.
In practice, a computing device requests the HTML data from another computing device via the communication network. If the content of the HTML data is static, the computing device receiving the request can obtain the static HTML data from memory and transmit the data to the requesting computing device. However, if the HTML data is not static, the computing device may have to dynamically generate the HTML data according to a predefined template upon receiving the request. For example, the computing device may have to refer to a database, such as through a data server, to obtain user-specific data to populate one or more sections of the display. Accordingly, each data request can increase the delay in completing the computing device request and utilizes system communication and processing resources.
One skilled in the relevant art will appreciate that content from one section may depend on one or more parameters from content corresponding to another, often later appearing section. For example, assume that the computing device request corresponds to a Web page having a section, such as section 104, for displaying a number of textual messages a particular user has received and another section, such as section 108, that includes the actual content of the messages. In accordance with a conventional linear order document generation method, a computing device would access the database a first time to calculate the number of messages for the user and include that information as part of the content associated with the first section 104. Additionally, the computing device would access the same data in the database a second time to obtain the content of the messages as part of the content associated with the second section 108. Thus, because the content of section 104 must be specified prior to the content of section 108, redundant database inquiries are required. Accordingly, linear generation of structured HTML documents becomes inefficient and can degrade system performance.
In a similar manner, electronic mail data often conforms to particular standard protocols, such as the simple mail transfer protocol (“SMTP”), that require data in a particular order. More specifically, electronic data conforming to SMTP include a header portion that specifies various fields for the electronic mail message. Often, similar to the structured HTML files, the data required for each field is obtained by accessing a database, or data server. Under the conventional document generation approach, the header portion is generated in a linear manner. However, because certain fields with the header portion of an electronic mail message may also depend on the content values of later occurring fields, computing devices generating SMTP mail messages often redundantly access data multiple times to generate the structured electronic document. Again, this approach inefficiently utilizes system communication and processing resources.
Thus, there is a need for a system and method for generating structured documents having a particular order in a non-linear manner.